package com.fxb.learn;

import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;

/**
 * @author fangjiaxiaobai
 * @description:
 * @date 2021-11-09 10:23
 */
public class OptionalEnhanceDemo {

    public static void main(String[] args) {
        demo1();
    }

    /**
     * 提供一个默认的Optional对象
     */
    private static void demo1() {
        // 定义一个变量, 可能为空 or not
        var variable = "jdk 11";

        // jdk 8 支持of(),ofNullable() 转换为Optional对象。
        List<String> collect = Optional.of(variable).stream().collect(Collectors.toList());

        // JDK 8 可以通过 orElse, 当 variable 为空的时候，返回一个默认的字符串值。
        Optional.ofNullable(variable).orElse("");

        // jdk 9 提供了提供 or() 返回一个默认Optional对象。
        Optional.empty().or(() -> Optional.of("jdk 11")).get();
    }

}
